﻿/*
* Copyright (c) 2008 michiyasu wada
* http://www.seyself.com/
* 
* Distributed under The MIT License.
* [http://www.opensource.org/licenses/mit-license.php]
*/


class com.seyself.utils.StringUtil
{
    
    public static function getNumber( str:String ):Number
    {
        var res = new Array();
        var len = str.length;
        for(var i=0;i<len;i++){
            var n:Number = Number(str.substr( i , 1 ));
            if( !isNaN(n) ){
                res.push(n);
            }
        }
        return Number( res.join("") );
    }
    
    
    //指定された連続する２つ以上の文字列を削除する
    public static function delChainChar( str:String , s:String ):String
    {
        var str = str.split(s+s+s).join("<<>>"+s);
        str = str.split(s+s).join("<<>>"+s);
        str = str.split(s+s).join("<<>>"+s);
        str = str.split("<<>>"+s).join("");
        str = str.split("<<>>").join("");
        return str;
    }
    
    //改行をすべて\rに変換する。
    public static function LineFeed( str ):String
    {
        str = str.split("\r\n").join("\r");
        str = str.split("\\r").join("\r");
        str = str.split("\\n").join("\r");
        str = str.split("\n").join("\r");
        return str;
    }
    
    //文字列の置換
    public static function replace( str , param1 , param2 ){
        return str.split(param1).join(param2);
    }
    
    //同じ文字列を複数連結した文字列を返す。
    public static function pow( str:String , leng:Number ):String
    {
        var tmp = "";
        for(var i=0;i<leng;i++){
            tmp += str;
        }
        return tmp;
    }
    
    //テキストフィールドの横幅を維持する。
    public static function fixWidth( tf:TextField , width:Number , param:String )
    {
        if( param==undefined ) param = '…';
        while( tf.textWidth > width ){
            var leng = tf.text.length;
            tf.text = tf.text.substr(0,leng-2)+param;
        }
    }
    
}